// Copyright (c) 2024 CHANGLEI. All rights reserved.

import 'package:charts_grasp/src/chart/chart_segment/chart_segment.dart';
import 'package:charts_grasp/src/circular_chart/renderer/common.dart';
import 'package:flutter/material.dart';

abstract class ChartSelectionBehavior {
  void onTouchDown(double xPos, double yPos);

  void onDoubleTap(double xPos, double yPos);

  void onLongPress(double xPos, double yPos);

  Paint getSelectedItemFill(Paint paint, int seriesIndex, int pointIndex, List<ChartSegment> selectedSegments);

  Paint getUnselectedItemFill(Paint paint, int seriesIndex, int pointIndex, List<ChartSegment> unselectedSegments);

  Paint getSelectedItemBorder(Paint paint, int seriesIndex, int pointIndex, List<ChartSegment> selectedSegments);

  Paint getUnselectedItemBorder(Paint paint, int seriesIndex, int pointIndex, List<ChartSegment> unselectedSegments);

  Color getCircularSelectedItemFill(Color color, int seriesIndex, int pointIndex, List<Region> selectedRegions);

  Color getCircularUnSelectedItemFill(Color color, int seriesIndex, int pointIndex, List<Region> unselectedRegions);

  Color getCircularSelectedItemBorder(Color color, int seriesIndex, int pointIndex, List<Region> selectedRegions);

  Color getCircularUnSelectedItemBorder(Color color, int seriesIndex, int pointIndex, List<Region> unselectedRegions);
}
